home *** CD-ROM | disk | FTP | other *** search
- /* T e m p l a t e F o r S y m b o l T a b l e M a n a g e r */
-
- /* define some hash function */
- #ifndef HASH
- #define HASH(p, h) while ( *p != '\0' ) h = (h<<1) + *p++;
- #endif
-
- /* minimum symbol table record */
- typedef struct _sym {
- char *symbol;
- struct _sym *next, *prev, **head, *scope;
- unsigned int hash;
- } Sym, *SymPtr;
-
- #ifdef __STDC__
- void zzs_init(int, int);
- void zzs_done(void);
- void zzs_add(char *, Sym *);
- Sym *zzs_get(char *);
- void zzs_del(Sym *);
- void zzs_keydel(char *);
- Sym **zzs_scope(Sym **);
- Sym *zzs_rmscope(Sym **);
- void zzs_stat(void);
- Sym *zzs_new(char *);
- Sym *zzs_newadd(char *);
- char *zzs_strdup(char *);
- #else
- void zzs_init();
- void zzs_done();
- void zzs_add();
- Sym *zzs_get();
- void zzs_del();
- void zzs_keydel();
- Sym **zzs_scope();
- Sym *zzs_rmscope();
- void zzs_stat();
- Sym *zzs_new();
- Sym *zzs_newadd();
- char *zzs_strdup();
- #endif
-